﻿CREATE PROCEDURE [dbo].[proc_RequisicoesLinhaLoadAllProdutos_O1]
(
	@IdRefeicaoContratada bigint,
	@NumeroRequisicao bigint
)
AS
BEGIN

	SET NOCOUNT ON
	DECLARE @Err int

	SELECT
		cr.[IdRefeicaoContratada],
		r.[NumeroRequisicao],
		p.[IdProduto],
		p.[Nome] as NomeProduto,
		p.[Descricao] as DescricaoProduto,
		p.[CodUnidadeMedida] as CodUnidadeMedida,
		tum.[Descricao] as DescricaoUMedida,
		tum.DescricaoCurta as DescricaoCurtaUMedida,
		tum.Simbolo as SimboloUMedida,
		tum.Tipo as TipoUMedida,
		p.[CodGrupoProduto],
		gp.Nome as NomeGrupoProduto,
		gp.Descricao as DescricaoGrupoProduto,
		gp.CodGrupoProdutoPai,
		gpp.Nome as NomeGrupoProdutoPai,
		gpp.Descricao as DescricaoGrupoProdutoPai,
		rl.[Quantidade],
		rl.[DataCriacao],
		rl.[DataAlteracao],
		p.[PrecoCusto],
		p.[CodMoeda],
		tm.[Descricao] as DescricaoMoeda,
		tm.DescricaoCurta as DescricaoCurtaMoeda,
		tm.Simbolo as SimboloMoeda,
		tm.Tipo as TipoMoeda
	FROM [Produtos] p
		inner join Tipologias tum on tum.Codigo = p.CodUnidadeMedida
			inner join Requisicoes r on r.NumeroRequisicao=@NumeroRequisicao
				inner join ContratosRefeicoes cr on cr.IdRefeicaoContratada = @IdRefeicaoContratada
					inner join Tipologias tm on tm.Codigo = p.CodMoeda
						inner join GruposProdutos gp on gp.CodGrupoProduto = p.[CodGrupoProduto]
							left join GruposProdutos gpp on gpp.CodGrupoProduto = gp.CodGrupoProdutoPai
								left join [RequisicoesLinha] rl on rl.IdProduto = p.IdProduto 
														AND rl.IdRefeicaoContratada = @IdRefeicaoContratada
														AND rl.NumeroRequisicao = @NumeroRequisicao
	Order by gpp.Nome, gp.Nome, p.IdProduto

	SET @Err = @@Error

	RETURN @Err
END
